package com.itheima.edu.info.manager.controller;


import com.itheima.edu.info.manager.domain.Teacher;
import com.itheima.edu.info.manager.service.TeacherService;

import java.util.Scanner;

//客服类
public class TeacherController {

    //指挥业务员进行添加老师业务逻辑
    TeacherService service1 = new TeacherService();
    private Scanner sc = new Scanner(System.in);

    //老师管理系统菜单展示功能
    public void start() {
        aa:
        while (true) {
            System.out.println("--------欢迎登陆老师管理系统-------");
            System.out.println("1 添加老师");
            System.out.println("2 删除老师");
            System.out.println("3 修改老师");
            System.out.println("4 查看老师");
            System.out.println("5 退出");
            System.out.println("请输入您的选择");
            //定义变量接收键盘录入
            int choice = sc.nextInt();
            switch (choice) {
                case 1:
                    //添加老师
                    addTeacher();
                    break;
                case 2:
                    //删除老师
                    deleteTeacher();
                    break;
                case 3:
                    //修改老师
                    updateTeacher();
                    break;
                case 4:
                    //查看老师
                    findALLTeacher();
                    break;
                case 5:
                    //退出
                    System.out.println("感谢您的使用");
                    break aa;
            }
        }
    }


    //客服类中的添加老师功能
    private void addTeacher() {
        //1. 让用户录入要添加的老师信息
        System.out.println("请输入老师工号");
        String id = sc.next();
        System.out.println("请输入老师姓名");
        String name = sc.next();
        System.out.println("请输入老师年龄");
        String age = sc.next();
        System.out.println("请输入老师生日");
        String birthday = sc.next();

        //2. 将用户录入的老师信息封装成一个学生对象
        Teacher tea = new Teacher();
        tea.setId(id);
        tea.setName(name);
        tea.setAge(age);
        tea.setBirthday(birthday);
        boolean result = service1.addTeacher(tea);
        //3. 根据业务员返回的结果组织对应的展示信息给用户
        if (result) {
            System.out.println("添加成功");
        } else {
            System.out.println("添加失败");
        }
    }

    //客服类中的查看老师功能
    private void findALLTeacher() {
        //指挥业务员把系统中的数据全部查到
        Teacher[] teac = service1.findALLTeacher();
        //判断数组里面是否有数据
        //有数据,就展示数据
        if (teac != null) {
            //遍历系统数据,将每一个学习信息打印到控制台,展示给用户
            //2.1 展示数据之前,展示表头数据
            //1.遍历系统数据,将每一个学生信息打印到控制台,展示给用户
            System.out.println("学号\t\t姓名\t年龄\t生日");
            for (int i = 0; i < teac.length; i++) {
                //拿到每一个学生信息
                Teacher tea = teac[i];
                //输出当前学生信息
                if (tea != null) {
                    System.out.println(tea.getId() + "\t" + tea.getName() + "\t" + tea.getAge() + "\t\t" + tea.getBirthday());
                }
            }
        } else {
            System.out.println("当前系统无数据,请添加重试");
        }
    }

    //客服类中的修改老师功能
    private void updateTeacher() {
        //指挥业务员把系统中的数据全部查到
        Teacher[] teac = service1.findALLTeacher();
        //有数据,就展示数据
        if (teac != null) {
            System.out.println("当前系统无数据!请添加后重试");
            return;
        }
        //没有数据,提示当前系统无数据,添加后重试!
        System.out.println("请输入要修改的学生学号");
        String updateId;
        while (true) {
           updateId = sc.next();
            //拿到要修改的老师工号

    /*
        效验用户输入的工号是否存在
            存在:让代码往下继续
            不存在:提示工号不存在,请重新输入
         */
            //指挥业务员效验本次录入的工号是否存在
            boolean flag = service1.isExists(updateId);
            if(!flag) {
                System.out.println("当前学号不存在,请重新录入");
            }else {
                break;
            }
        }
    }


    //客服类中的删除老师功能
    private void deleteTeacher() {
        Teacher[] teac = service1.findALLTeacher();
        if (teac == null) {
            System.out.println("当前系统无数据!请添加后重试");
            return;
        }
        //1. 让用户输入要删除的学生学号
        System.out.println("请输入要删除的学生学号");

        String deleteId = sc.next();

        //2. 指挥业务员去干删除的业务
        boolean result = service1.deleteTeacher(deleteId);
        //3. 给出删除结果提示信息
        if (result) {
            System.out.println("删除成功");
        } else {
            System.out.println("删除失败,请确保要删除的老师工号是存在!");
        }
    }
}
